Faceted search allows a user to filter search results from a search engine without knowing the internal syntax of the search engine. If a user submits a search query to a search engine, the search engine may return facet information comprising facets and facet values (i.e., search result options) in addition to the regular list of search results. The user may then filter the search results by selecting a facet value.
For example, if a user searches “camera” on an electronics website, the website may display facets such as brand or price. Under the price facet, values such as “Under $200” or “$200 to $300” may be displayed. Then, when the user selects the value “Under $200” the website's search engine reruns the “camera” search query, filtering the original search results according to the price facet value of “Under $200.”
Generating facet information consumes memory and I/O (input/output) resources. A search engine with faceted search capability may generate facet information for each search result. Thus, a faceted search may take more time than a regular search, and a large number of results may slow down a search engine's response time to a search query.
Faceted search is useful because it provides users with a user-friendly mechanism for filtering search results. On the other hand, users desire fast response times to search queries and may become frustrated if search results are not displayed until after facet information has been completely generated. Systems and methods are needed that can overcome the above-mentioned shortcomings.